home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs03.d81
/
comic.sda
/
COMIC FILER V5.0
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
13KB
|
412 lines
10 REM ************************* * *
20 REM * THE COMIC BOOK FILER * * PROGRAM *
30 REM * * * WRITTEN BY *
40 REM * MICHAEL ASH * *************************
50 DIM DA$(750),T$(50),TS(50),C(20),GR$(10),VP(10)
60 R$=CHR$(13)
70 FOR X=0TO9:READ GR$(X),VP(X):NEXT X
80 DATA "[196]ON'T [195]ARE",0,"[205]INT",1.05,"[206]EAR [205]INT",1,"[214]ERY [198]INE",.87,"[198]INE",.69
90 DATA "[214]ERY [199]OOD",.49,"[199]OOD",.27,"[198]AIR",.11,"[208]OOR",.03,"[195]OVERLESS",.005
100 POKE 53272,23:POKE 53281,0:PRINTCHR$(5)
110 PRINT"[147]"
120 PRINT" [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
130 PRINT" [1] [204]OAD A [196][193][212][193] [196][201][211][203]"
140 PRINT" [2] [195]REATE A [196][193][212][193] [196][201][211][203]"
150 PRINT" [3] [210]ENAME A [196][193][212][193] [196][201][211][203]"
160 PRINT" [4] [197]XIT [208]ROGRAM"
170 PRINT" [195]URRENT DISK IN MEMORY :":PRINT"";A$
180 GET Z$:Z=VAL(Z$)
190 IF Z<1 OR Z>4 THEN 180
200 ON Z GOTO 210,720,3720,4110
210 OPEN1,8,15
220 GOSUB3900
230 CLOSE 1
240 PRINT"[147]"
250 PRINT" [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
260 PRINT" [1] [204]OAD A [196][193][212][193] [198][201][204][197]"
270 PRINT" [2] [195]REATE A [196][193][212][193] [198][201][204][197]"
280 PRINT" [3] [196]ELETE A [196][193][212][193] [198][201][204][197]"
290 PRINT" [4] [210]ETURN TO [205]AIN [205]ENU"
300 PRINT" [195]URRENT DISK IN MEMORY :":PRINT"";A$
310 GET Z$:Z=VAL(Z$)
320 IF Z<1 OR Z>4 THEN 310
330 ON Z GOTO 900,340,1540,110
340 PRINT"[147]"
350 PRINT" [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
360 PRINT" [1] [211]MALL : 250 ISSUES OR LESS"
370 PRINT" [2] [205]EDIUM : 251 - 500 ISSUES"
380 PRINT" [3] [204]ARGE : 501 - 750 ISSUES"
390 PRINT" [4] [210]ETURN TO [208]REVIOUS MENU"
400 GET Z$:Z=VAL(Z$)
410 IF Z<1 OR Z>4 THEN 400
420 IF Z = 4 THEN 240
430 OPEN1,8,15:GOSUB 3900:CLOSE1
440 FB=600-VAL(B$)-(Z*6+1)
450 IF FB <(Z*6+1)THEN GOTO4060
460 T=0
470 FOR X = 1 TO 50
480 IF T$(X) = "*****" THEN T=X:X=51
490 NEXT X:IF T=0 THEN 4060
500 TS(T)=Z:FS=Z
510 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
520 PRINT" [197]NTER THE TITLE OF THE BOOK":INPUT"";Z$
530 T$(T)=Z$:IF LEN(Z$)>85 THEN T$(T)= LEFT$(Z$,85)
540 PRINT" [195]REATING A DATA FILE FOR"
550 PRINT"";T$(T)
560 GOSUB 3780
570 F$="0:CBF.D"+STR$(T)
580 D$="":FORY=1TO85:D$=D$+"N":NEXTY:D$=D$+R$+D$+R$+LEFT$(D$,80)
590 OPEN1,8,15:OPEN4,8,4,F$+",L,"+CHR$(254):GOSUB4080
600 FOR X= 1 TO Z
610 GOSUB 3860
620 NEXTX
630 D$="":FORY=1TO17:D$=D$+"0000A":NEXTY:D$=D$+R$+D$+R$+LEFT$(D$,80)
640 FOR X= (Z+1) TO (Z*6)
650 GOSUB 3860
660 NEXTX:CLOSE4:PRINT" [214]ALIDATING DISK...":PRINT#1,"V"
670 PRINT "[198]ILE CREATED.":PRINT"[213]SE THE UPDATE OPTIONS TO ENTER "
680 CLOSE1
690 PRINT" INFORMATION INTO THE FILE.":PRINT"[208]RESS ANY KEY TO CONTINUE."
700 GET Z$:IF Z$="" THEN 700
710 GOTO 240
720 PRINT"[147]"
730 PRINT" [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
740 PRINT"[196]O YOU WISH TO CREATE A NEW DATA DISK?"
750 PRINT"(Y/N)"
760 GET Z$
770 IF Z$="Y" THEN 800
780 IF Z$="N" THEN 110
790 GOTO 760
800 PRINT"[197]NTER A DISK NAME : "
810 INPUT A$
820 IF LEN(A$)>85 THEN A$=LEFT$(A$,85)
830 PRINT"[215]RITING FILES TO DISK..."
840 OPEN2,8,2,"0:CBF.INFO,S,W":OPEN3,8,3,"0:CBF.TITLES,S,W"
850 PRINT#2,A$:PRINT#2,"0":CLOSE2
860 Z=0:FOR X = 1 TO 50:PRINT#3,"*****":PRINT#3,Z:NEXT X:CLOSE3:CLOSE1
870 PRINT "[198]ILES CREATED.":PRINT"[208]RESS ANY KEY TO CONTINUE"
880 GET Z$:IF Z$="" THEN 880
890 GOTO 110
900 GOSUB 1700:IF Z$="E" THEN 240
910 F$="CBF.D"+STR$(T):FS=TS(T)
920 PRINT"[147]"
930 PRINT" [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]":PRINT" [208]LEASE [215]AIT"
940 FOR X=1TO750:DA$(X)="":NEXTX:PRINT" [193]CCESSING....."
950 OPEN1,8,15:OPEN4,8,4,F$:GOSUB4080
960 FORX=1TOFS
970 GOSUB 4010
980 FOR Y = 1 TO 250:Z=((X-1)*250+Y):DA$(Z)=MID$(D$,Y,1)
990 IF DA$(Z) <"0" OR DA$(Z)>"9" THEN DA$(Z)="N"
1000 NEXT Y
1010 NEXTX:CLOSE4:CLOSE1
1020 T$(0)=T$(T):TB=1:IF LEN(T$(0)) < 40 THEN TB = (40-(LEN(T$(0))))/2
1030 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":PRINT "";TAB(TB);T$(0)
1040 PRINT" [1] [201]SSUE [204]ISTING"
1050 PRINT" [2] [199]RADES"
1060 PRINT" [3] [210]ENAME [212]ITLE"
1070 PRINT" [4] [195]OMPLETE ISSUE INFORMATION":PRINT" [5] [213]PDATE ISSUES/GRADES"
1080 PRINT" [6] [196]ISPLAY/[213]PDATE [208]RICE [199]UIDE"
1090 PRINT" [7] [210]ETURN TO [208]REVIOUS [205]ENU"
1100 GET Z$:Z=VAL(Z$)
1110 IF Z<1 OR Z>7 THEN GOTO1100
1120 ON Z GOTO 1130,1290,3650,1420,2060,2790,240
1130 X=1:W=0:I=0:PRINT"[147]";TAB(TB);T$(0):PRINT
1140 FOR Y=1TO(250*FS)
1150 IF DA$(Y)<"0"OR DA$(Y)>"9" THEN 1200
1160 IF X>10 THEN GOSUB 1250
1170 I=I+1:PRINT TAB(W);RIGHT$(STR$(Y),4);
1180 W=W+4
1190 IF W> 36 THEN X=X+1:W=0:PRINT
1200 NEXT Y
1210 PRINT:PRINT" [212]OTAL NUMBER OF [201]SSUES : ";I
1220 PRINT"[208]RESS ANY KEY TO CONTINUE."
1230 GETZ$:IF Z$="" THEN GOTO 1230
1240 GOTO 1030
1250 PRINT"[208]RESS ANY KEY TO CONTINUE."
1260 GETZ$:IF Z$="" THEN GOTO 1260
1270 X=1:W=0:PRINT"[147]";TAB(TB);T$(0):PRINT
1280 RETURN
1290 PRINT"[147]":PRINT" [160][212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
1300 PRINT" [199][210][193][196][197][211]":PRINT TAB(TB);T$(0):PRINT
1310 PRINT"[215]HICH ISSUE WOULD YOU LIKE TO START":INPUT" WITH? :";S
1320 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":X=S
1330 IF X<1 OR X>(FS*250)THEN 1030
1340 PRINT" [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0):GOSUB 1850
1350 PRINT"[201]SSUE # [199]RADE "
1360 PRINT"";S;TAB(20);G$
1370 PRINT" CONTINUE WITH NEXT ISSUE? (Y/N)"
1380 GET Z$:IFZ$="" THEN 1380
1390 IF Z$="Y" THEN S=S+1:GOTO 1320
1400 IF Z$="N" THEN GOTO 1030
1410 GOTO 1380
1420 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
1430 PRINT" [195][207][205][208][204][197][212][197][160][201][211][211][213][197][160][201][206][198][207][210][205][193][212][201][207][206]"
1440 PRINT"[215]HICH ISSUE WOULD YOU LIKE TO START":INPUT" WITH? :";S
1450 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":PRINT"";TAB(TB);T$(0):X=S
1460 IF X<1 OR X>(FS*250) THEN 1030
1470 PRINT" [201][211][211][213][197][160]# [199][210][193][196][197] [214][193][204][213][197] ":PRINT:GOSUB 1850:GOSUB1890
1480 PRINT"[145]";TAB(1);S;TAB(15);G$;TAB(26);"$";V
1490 PRINT" [208]RESS THE <[211][208][193][195][197][194][193][210]> FOR NEXT ISSUE"
1500 PRINT"OR [208]RESS ANY OTHER KEY TO EXIT."
1510 GET Z$:IF Z$="" THEN 1510
1520 IF Z$=" " THEN S=S+1:GOTO 1450
1530 GOTO 1030
1540 GOSUB 1700:IF Z$="E" THEN 240
1550 F$="CBF.D"+STR$(T)
1560 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
1570 PRINT" [196][197][204][197][212][197][160][193][160][196][193][212][193][160][198][201][204][197]"
1580 PRINT"[196]ELETE ";T$(T);"?":PRINT " [193]RE YOU SURE (Y/N)"
1590 GETZ$:IF Z$="" THEN 1590
1600 IF Z$<>"Y" THEN 240
1610 OPEN1,8,15:T$(T)="*****":TS(T)=0:PRINT#1,"S:"+F$:PRINT#1,"V"
1620 OPEN3,8,3,"@0:CBF.TITLES,S,W"
1630 B=0:FORX=1TO50:PRINT#3,T$(X):PRINT#3,TS(X)
1640 IF TS(X) <> 0 THEN B=B+(TS(X)*6+1)
1650 NEXTX
1660 CLOSE3:B$=STR$(B)
1670 OPEN2,8,2,"@0:CBF.INFO,S,W":PRINT#2,A$:PRINT#2,B$:GOSUB4080:CLOSE2
1680 CLOSE1
1690 GOTO 240
1700 FORX=1TO5
1710 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
1720 PRINT" [212][201][212][204][197][211]":Z$=""
1730 PRINT:FORY=1TO10
1740 W = (X-1)*10+Y
1750 PRINT TAB(2);"[";W;"] ";T$(W):NEXTY
1760 PRINT TAB(2);"[0] [206]EXT [208]AGE ":PRINT TAB(2);"[197]NTER [E] TO [197]XIT"
1770 INPUT Z$:Z=VAL(Z$)
1780 IF Z$="E" THEN 1820
1790 IF Z=0 THEN GOTO 1830
1800 IF (Z<1 OR Z>50) OR T$(Z)="*****" THEN 1710
1810 T=Z
1820 RETURN
1830 NEXTX
1840 X=0:GOTO 1700
1850 GV=0:G$="[206]/[193]":IF DA$(X)<"0" OR DA$(X) >"9" THEN 1880
1860 G=VAL(DA$(X))
1870 G$=GR$(G):GV=VP(G)
1880 RETURN
1890 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
1900 RN=FS+1:Y=INT((S-1)/50):RN=RN+Y
1910 X=S-Y*50
1920 RP=1:Z=X:IF X>17 THEN RP=86:Z=X-17:IF X>34 THEN RP=172:Z=X-34
1930 PRINT#1,"P"CHR$(100)CHR$(RN)CHR$(0)CHR$(RP)
1940 INPUT#4,Y$
1950 PV$=MID$(Y$,(((Z-1)*5)+1),5):GOSUB4080
1960 CLOSE 4:CLOSE1
1970 V=0:PV=0:FOR W = 0 TO 3:V$=MID$(PV$,(4-W),1)
1980 IF V$>="0" AND V$<="9" THEN Y=VAL(V$):GOTO 2000
1990 Y=ASC(V$)-55
2000 PV=PV + (16^W) * Y
2010 NEXT W
2020 V$=RIGHT$(PV$,1)
2030 PV=PV+((ASC(V$)-65)*.05)
2040 V=GV*PV
2050 RETURN
2060 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2070 PRINT" [213][208][196][193][212][197]":PRINT"";TAB(TB);T$(0)
2080 PRINT" [1] [193]DD ISSUES / [213]PDATE [199]RADES":PRINT" [2] [196]ELETE ISSUES"
2090 PRINT " [3] [211]AVE & [197]XIT"
2100 PRINT " [4] [197]XIT [207]NLY "
2110 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>4 THEN 2110
2120 ON Z GOTO 2130,2320,2640,1030
2130 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2140 PRINT" [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
2150 PRINT" [1] [193]DD/[213]PDATE A SINGLE ISSUE "
2160 PRINT" [2] [193]DD/[213]PDATE A RUN OF ISSUES"
2170 PRINT" [3] [210]ETURN TO [213]PDATE [205]ENU"
2180 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>3 THEN 2180
2190 ON Z GOTO 2200,2250,2060
2200 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2210 PRINT" [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
2220 INPUT" [193]DD/[213]PDATE WHICH ISSUE ";Y:IF Y>=1 AND Y<=FS*250THEN Z=Y:GOTO 2510
2230 IF Y>=1 AND Y<=(FS*250) THEN Z=Y:GOTO 2510
2240 GOTO 2130
2250 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2260 PRINT" [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
2270 PRINT" [193]DD/[213]PDATE A RUN":INPUT" STARTING WITH ISSUE :";Y
2280 IF Y<1 OR Y>(FS*250) THEN 2130
2290 INPUT" [197]NDING WITH ISSUE :";Z
2300 IF (Z>=1 AND Z<=FS*250) AND Y<Z THEN GOTO 2510
2310 GOTO 2130
2320 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2330 PRINT" [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
2340 PRINT" [1] [196]ELETE A SINGLE ISSUE ":PRINT" [2] [196]ELETE A RUN OF ISSUES"
2350 PRINT" [3] [210]ETURN TO [213]PDATE [205]ENU"
2360 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>3 THEN 2360
2370 ON Z GOTO 2380,2430,2060
2380 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2390 PRINT" [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
2400 INPUT" [196]ELETE WHICH ISSUE :";Y:IF Y<=FS*250 AND Y>0 THEN DA$(Y)="N"
2410 IF Y<=750 AND Y>=1 THEN DA$(Y)="N"
2420 GOTO 2320
2430 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2440 PRINT" [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
2450 PRINT" [196]ELETE A RUN STARTING WITH ISSUE :":INPUT Y
2460 IF Y<1 OR Y>FS*250 THEN 2320
2470 INPUT" [197]NDING WITH ISSUE :";Z
2480 IF (Z>=1 AND Z<=FS*250) AND(Y<Z)THEN GOTO 2500
2490 GOTO 2320
2500 FOR X=Y TO Z:DA$(X)="N":NEXTX:GOTO 2320
2510 FOR X=Y TO Z
2520 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2530 PRINT" [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
2540 PRINT " [1] [205]INT [6] [199]OOD"
2550 PRINT " [2] [206]EAR [205]INT [7] [198]AIR"
2560 PRINT " [3] [214]ERY [198]INE [8] [208]OOR"
2570 PRINT " [4] [198]INE [9] [195]OVERLESS"
2580 PRINT " [5] [214]ERY [199]OOD [0] [196]ON'T [195]ARE"
2590 PRINT " [211]ELECT A GRADE FOR ISSUE ";X
2600 GET Z$: IF Z$ <"0" OR Z$>"9" THEN 2600
2610 DA$(X) = Z$
2620 NEXT X
2630 GOTO 2130
2640 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2650 PRINT" [213][208][196][193][212][197][160][201][211][211][213][197][211]/[199][210][193][196][197][211]"
2660 PRINT" [208]LEASE [215]AIT":PRINT " [213]PDATING ...."
2670 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
2680 FORX=1TO(FS):D$="":D1$="":D2$="":D3$=""
2690 FORY=1TO85:W=((X-1)*250)+Y:D1$=D1$+DA$(W):NEXTY
2700 FORY=86TO170:W=((X-1)*250)+Y:D2$=D2$+DA$(W):NEXTY
2710 FORY=171TO250:W=((X-1)*250)+Y:D3$=D3$+DA$(W)
2720 NEXTY:D$=D1$+R$+D2$+R$+D3$
2730 GOSUB 3860
2740 NEXT X
2750 CLOSE4:CLOSE1
2760 PRINT " [213]PDATE [195]OMPLETE.":PRINT" [208]RESS ANY KEY TO CONTINUE."
2770 GET Z$:IF Z$ = "" THEN 2770
2780 GOTO 1030
2790 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2800 PRINT" [213][208][196][193][212][197][160][208][210][201][195][197][160][199][213][201][196][197]"
2810 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
2820 PRINT" [193]CCESSING.....":W=1
2830 FOR X=(FS+1) TO (FS*6)
2840 GOSUB 4010
2850 FOR Y=1TO50:DA$(W)=MID$(D$,((Y-1)*5)+1,5)
2860 W=W+1
2870 NEXTY
2880 NEXT X:CLOSE4:CLOSE1
2890 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2900 PRINT" [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
2910 PRINT" [1] [196]ISPLAY [208]RICES"
2920 PRINT" [2] [213]PDATE A SINGLE ISSUE"
2930 PRINT" [3][160][213]PDATE A RUN OF ISSUES"
2940 PRINT" [4] [211]AVE [195]HANGES AND [197]XIT"
2950 PRINT" [5] [197]XIT ONLY"
2960 GET Z$:Z=VAL (Z$):IF Z<1 OR Z>5 THEN 2960
2970 ON Z GOTO 2980,3150,3270,3480,920
2980 PRINT"[147]":PRINT" [212][200][197][160][195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
2990 PRINT" [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
3000 INPUT" [211]TART WITH WHICH ISSUE :";S
3010 X=S:Z=S+1:PRINT" [193]CCESSING....."
3020 IF S>(FS*250) OR S<1 THEN 2890
3030 IF S=(FS*250) THEN 3050
3040 IF DA$(X) = DA$(Z) THEN Z=Z+1:IF Z<=(FS*250) THEN 3040
3050 PV$= DA$(X):GOSUB 1970
3060 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3070 PRINT" [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
3080 PRINT" [201]SSUE # [208]RICE [199]UIDE [214]ALUE"
3090 IF Z=S+1 THEN PRINT"";TAB(7);S;TAB(20);"$";PV:GOTO 3110
3100 PRINT"";TAB(5);S;"-";Z-1;TAB(20);"$";PV
3110 PRINT" [208]RESS THE <[211]PACEBAR> FOR THE NEXT BLOCK":PRINT" OR ANY OTHER KEY TO EXIT"
3120 GETZ$:IF Z$="" THEN 3120
3130 IF Z$<>" " THEN 2890
3140 S=Z:GOTO3010
3150 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3160 PRINT" [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
3170 INPUT"[213]PDATE WHICH ISSUE :";X
3180 IF X<1 OR X>(FS*250) THEN 2890
3190 PV$=DA$(X):GOSUB 1970
3200 PRINT"[147]":PRINT" [212][200][197][160][195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3210 PRINT" [208][210][201][195][197][160][199][213][201][196][197]"
3220 PRINT" [195]URRENT VALUE OF ISSUE ";X;" : $";PV
3230 INPUT " [197]NTER NEW VALUE : $";V
3240 GOSUB 3380
3250 DA$(X)=P$
3260 GOTO 2890
3270 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3280 PRINT" [213][208][196][193][212][197] [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
3290 INPUT " [211]TARTING WITH ISSUE :";S
3300 IF S<1 OR S>FS*250 THEN 2890
3310 INPUT" [197]NDING WITH ISSUE :";S1
3320 IF (S1<1 OR S1>FS*250) OR S1<S THEN 2890
3330 INPUT " [197]NTER NEW VALUE : $";V
3340 PRINT " [208]ROCCESSING... "
3350 GOSUB 3380:FOR X = S TO S1
3360 DA$(X)=P$:NEXT X
3370 GOTO 2890
3380 P$="":V1=INT(V):V2=((V-V1)+.01)/.05:IF V1>65536 THEN V1 = 65535
3390 Y=V1/16:Z=V1-INT(Y)*16:V1=INT(Y)
3400 IF Z< 10 THEN P$=RIGHT$(STR$(Z),1)+P$:GOTO 3420
3410 P$=CHR$(Z+55)+P$
3420 IF V1= 0 THEN GOTO 3440
3430 GOTO 3390
3440 IF LEN(P$)=4 THEN GOTO 3460
3450 Y=(4-LEN(P$)):FOR X1=1TOY:P$="0"+P$:NEXT X1
3460 P$=P$+CHR$(V2+65)
3470 RETURN
3480 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
3490 PRINT"[147]":PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3500 PRINT" [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
3510 PRINT" [208]LEASE [215]AIT":PRINT " [213]PDATING [208]RICE [199]UIDE ...."
3520 FOR X=1TO50:T$(X)="":TS(X)=0:NEXTX:A$="":B$="":E1$="":E2$="":E3$="":E4$=""
3530 W=1:Y$=""
3540 FOR X= (FS+1) TO (FS*6)
3550 D$="":D1$="":D2$="":D3$=""
3560 FOR Z=1TO17:D1$=D1$+DA$(W):DA$(W)="":W=W+1:NEXTZ
3570 FOR Z=18TO34:D2$=D2$+DA$(W):DA$(W)="":W=W+1:NEXTZ
3580 FOR Z=35TO50:D3$=D3$+DA$(W):DA$(W)="":W=W+1:NEXTZ
3590 D$=D1$+R$+D2$+R$+D3$:GOSUB 3860
3600 NEXTX
3610 CLOSE4::GOSUB3900:CLOSE1
3620 PRINT " [213]PDATE [195]OMPLETE.":PRINT" [208]RESS ANY KEY TO CONTINUE."
3630 GET Z$:IF Z$ = "" THEN 3630
3640 GOTO 920
3650 PRINT"[147]": PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3660 PRINT" [210][197][206][193][205][197][160][212][201][212][204][197]"
3670 X=1
3680 IF T$(0)<>T$(X) THEN X=X+1:GOTO 3680
3690 PRINT" [195]URRENT [212]ITLE [206]AME :":PRINT TAB(TB);T$(0)
3700 PRINT"[197]NTER [206]EW [212]ITLE [206]AME :":INPUT T$(X)
3710 GOSUB 3780:CLOSE1:GOTO1020
3720 PRINT"[147]": PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3730 PRINT" [195]URRENT DISK : ";A$
3740 PRINT "[197]NTER NEW DISK NAME : "
3750 INPUT A$
3760 OPEN1,8,15:GOSUB3840
3770 GOTO 110
3780 OPEN1,8,15
3790 OPEN3,8,3,"@0:CBF.TITLES,S,W":GOSUB4080
3800 Y=0:FORX=1TO50:PRINT#3,T$(X):PRINT#3,TS(X):GOSUB 4080
3810 IF TS(X)<> 0 THEN Y=Y+(TS(X)*6+1)
3820 NEXTX
3830 CLOSE3:B$=STR$(Y)
3840 OPEN2,8,2,"@0:CBF.INFO,S,W":PRINT#2,A$:PRINT#2,B$:GOSUB4080:CLOSE2
3850 CLOSE1:RETURN
3860 PRINT#1,"P" CHR$(100) CHR$(X) CHR$(0) CHR$(1):GOSUB 4080
3870 PRINT#4,D$:GOSUB4080
3880 PRINT#1,"P" CHR$(100) CHR$(X) CHR$(0) CHR$(1):GOSUB 4080
3890 RETURN
3900 PRINT"[147]": PRINT" [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
3910 PRINT" [193]CCESSING....."
3920 OPEN2,8,2,"CBF.INFO,S,R":GOSUB 4080
3930 INPUT#2,A$,B$
3940 GOSUB 4080:CLOSE2
3950 PRINT" [193]CCESSING....."
3960 OPEN2,8,2,"0:CBF.TITLES,S,R":GOSUB 4080
3970 FORX=1TO50:INPUT#2,T$(X),TS(X)
3980 GOSUB 4080:NEXTX
3990 CLOSE2
4000 RETURN
4010 PRINT#1,"P"CHR$(100)CHR$(X)CHR$(0)CHR$(1)
4020 INPUT#4,D1$,D2$,D3$
4030 GOSUB 4080:IF VAL(E1$)=51 THEN 4100
4040 D$=D1$+D2$+D3$:D1$="":D2$="":D3$=""
4050 RETURN
4060 PRINT"[147]":PRINT" [196]ATA [196]ISK [198]ULL!"
4070 GOTO 4110
4080 INPUT#1,E1$,E2$,E3$,E4$
4090 IF VAL(E1$)=50 OR VAL(E1$) <20 THEN RETURN
4100 PRINT E1$,E2$,E3$,E4$
4110 END